<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class administrador extends CI_Controller {
	public function __construct(){
		parent::__construct();
	}
	
	public function cadastrar(){
		$this->load->model("LoginModel", "login");
		if($this->login->testaLogado("admin")){
			$this->load->view("cadastroadm");
		} else {
			$this->login->redirecionar("admin");
		}
	}
	
	public function excluir($id){
		$this->load->model("LoginModel", "login");
		$saida = array();
		if($this->login->testaLogado("admin")){
			if(is_numeric($id) && $id != ""){
				$this->load->model("dao/AdministradorDAO", "aDAO");
				$ret = (int)$this->aDAO->excluirAdmin($id);
				$saida['error'] = $ret;
			} else {
				echo "id não numérico";
			}
			
		} else {
			$this->login->redirecionar("admin");
		}
		header("Content-type: application/json");
		echo json_encode($saida);
		
	}
	
	public function getAdmin($id){
		$this->load->model("LoginModel", "login");
		if($this->login->testaLogado("admin")){
			if(is_numeric($id) && $id != ""){
				$this->load->model("dao/AdministradorDAO", "aDAO");
				$adm = $this->aDAO->getAdminById($id);
				
				$data = array(
						"admin" => $adm);
				$this->load->view("cadastroadm", $data);
			} else {
				echo "id não numérico";
			}
		} else {
			$this->login->redirecionar("admin");
		}
	}
	
	/**
	 * 
	 * @param int $id
	 */
	public function salvarEditar($id){
		$this->load->model("LoginModel", "login");
		$saida = array();
		if($this->login->testaLogado("admin")){
			if(is_numeric($id) && $id != ""){
				if(isset($_POST['nome']) && $_POST['nome'] != "" && isset($_POST['login']) && $_POST['login'] != ""){
					$senha = "";
					$flag = true;
					if((int) $id == 0 && (!isset($_POST['senha']) || $_POST['senha'] == "")){
						$saida['error'] = -3;
						$saida['msg'] = "Senha é obrigatório";
						$flag = false;
					} else {
						$senha = $_POST['senha'];
					}
					if($flag){
						$nome = $_POST['nome'];
						$login = $_POST['login'];
						$this->load->model("dao/AdministradorDAO", "aDAO");
						$retorno = $this->aDAO->salvarEditar((int)$id, $nome, $login, $senha);
						$saida['error'] = $retorno;
						if($retorno == 1){
							$saida['msg'] = "update com sucesso com senha";
						} elseif($retorno == 2){
							$saida['msg'] = "update com sucesso sem senha";
						} elseif($retorno == 3){
							$saida['msg'] = "Admin não encontrado para editar";
						} elseif($retorno == 4){
							$saida['msg'] = "Cadastrado com sucesso";
						} else {
							$saida['msg'] = "Erro desconhecido";
						}
					}
				} else {
					$saida['error'] = -2;
					$saida['msg'] = "Todos os campos são obrigatórios";
				}
			} else {
				$saida['error'] = -1;
				$saida['msg'] = "Id não numérico";
			}
			
		} else {
			$this->login->redirecionar("admin");
		}
		header("Content-type: application/json");
		echo json_encode($saida);
	}
	
	public function index(){
		$this->load->model("LoginModel", "login");
		if($this->login->testaLogado("admin")){
			
			$this->load->view("principal");
		}
		else {
			$this->redirecionarLogin();

		}
	}
	public function home(){
		$this->load->model("LoginModel", "login");
		if($this->login->testaLogado("admin")){
			$admin = $_SESSION['logado']['id'];
			$this->load->model("adminModel", "admin");
			$this->admin->getAdminById($admin);
			$adm = $this->admin;
			
			$data = array(
					"admin" => $adm
			);
			$this->load->view("homeadmin", $data);
		} else {
			$this->redirecionarLogin();
		}
	}
	
	public function ensino(){
		$this->load->model("LoginModel", "login");
		if($this->login->testaLogado("admin")){
			$this->load->model('dao/EnsinoDAO', 'ensinoDAO');
			$listaEnsino = $this->ensinoDAO->getListaEnsino();
			
			if(!$listaEnsino){
				$listaEnsino = array();
			}
			
			$data = array("listaEnsino" => $listaEnsino);
			$this->load->view("ensinoadmin", $data);
		} else {
			$this->redirecionarLogin();
		}	
	}
	
	public function turma(){
		$this->load->model("LoginModel", "login");
		if($this->login->testaLogado("admin")){
			$this->load->model("dao/TurmaDAO", "tDAO");
			$listaTurmas = $this->tDAO->getTurmas();
			$data = array(
				"listaTurmas" => $listaTurmas);
			$this->load->view("turmaadmin", $data);
		} else {
			$this->login->redireciona("admin");
		}
	}
	
	public function serie(){
		$this->load->model("LoginModel", "login");
		if($this->login->testaLogado("admin")){
			$this->load->model("dao/SerieDAO", "sDAO");
			$lSeries = $this->sDAO->getListaSerie();
			$data = array(
					"listaSeries" => $lSeries);
			$this->load->view("serieadmin", $data);
		} else {
			$this->login->redireciona("admin");
		}
	}
	
	public function ano(){
		$this->load->model("LoginModel", "login");
		if($this->login->testaLogado("admin")){
			$this->load->model("dao/AnoDAO", "aDAO");
			$listaAno = $this->aDAO->getListaAno();
			
			$data = array(
				"listaAno" => $listaAno
				);
			$this->load->view("anoadmin", $data);
		} else {
			$this->redirecionarLogin();
		}
	}
	
	public function materia(){
		$this->load->model("LoginModel", "login");
		if($this->login->testaLogado("admin")){
			$this->load->model("dao/MateriaDAO", "mDAO");
			$listaMaterias = $this->mDAO->getListaMateria();
			
			$data = array(
					"listaMateria" => $listaMaterias,
					
					);
			$this->load->view("materiaadmin", $data);
		} else {
			$this->redirecionarLogin();
		}
	}
	
	public function professor(){
		$this->load->model("LoginModel", "login");
		if($this->login->testaLogado("admin")){
			$this->load->model("dao/ProfessorDAO", "pDAO");
			$listaProfessor = $this->pDAO->getListaProfessor();
			$data = array(
					"listaProfessor" => $listaProfessor);
			$this->load->view("professoradmin", $data);
		} else {
			$this->redirecionarLogin();
		}
	}
	
	public function aluno(){
		$this->load->model("LoginModel", "login");
		if($this->login->testaLogado("admin")){
			$this->load->model("dao/AlunoDAO", "aDAO");
			$listaAlunos = $this->aDAO->getListaAlunos();
			$data = array(
				"listaAlunos" => $listaAlunos);
			$this->load->view("alunoadmin", $data);
		} else {
			$this->redirecionarLogin();
		}
	}
	
	public function relacionar(){
		$this->load->model("LoginModel", "login");
		if($this->login->testaLogado("admin")){
			$this->load->model("dao/EnsinoDAO", "eDAO");
			$listaEnsino = $this->eDAO->getListaEnsino();			
			$this->load->model("dao/ProfessorDAO", "pDAO");
			$listaProfessor = $this->pDAO->getListaProfessor();
			$this->load->model("dao/AnoDAO", "aDAO");
			$ano = $this->aDAO->getAnoVigente();
			
			$this->load->model("dao/AlunoDAO", "alunoDAO");
			$listaAluno = $this->alunoDAO->getListaAlunos();
			
			$data = array(
				"listaEnsino" => $listaEnsino,
				"listaProfessor" => $listaProfessor,
				"ano" => $ano,
				"listaAluno" => $listaAluno
				);
			
			$this->load->view("relacionaradmin", $data);
		} else {
			$this->redirecionarLogin();
		}
	}
	
	public function admin(){
		$this->load->model("LoginModel", "login");
		if($this->login->testaLogado("admin")){
			$this->load->model("dao/AdministradorDAO", "aDAO");
			$listaAdm = $this->aDAO->getListaAdministrador();
			$id = $this->login->idLogado();
			$data = array(
					"listaAdm" => $listaAdm,
					"id" => $id);
			$this->load->view("adminadmin", $data);
		} else {
			$this->login->redirecionar("admin");
		}
	}
	
	private function redirecionarLogin(){
		header("Logado: false");
		header("Location: /boletim/login/administrador");
		exit();
	}
}
